IBM安全开发过程提出应该考虑哪几类安全需求
IBM安全开发过程提出应该考虑以下几类安全需求:
审计和日志记录:尽管人们通常依赖网络数据包日志来进行取证分析,应用程序内部的日志记录也是同等重要的,应用程序应该对软件的保密性、可用性和完整性等至关重要的事件进行内部日志记录。例如,应用需要有审计日志。审计日志记录的日志事件必须包括IP地址和时间等。必须记录的日志事件包括账号验证尝试、账号锁定、应用错误和与规定的验证程序不匹配的输入值等。
身份验证:由于大多数应用具备访问控制限制,确保这些访问控制机制不能被破解或操作未经授权的访问非常重要,如,要求强密码。任何身份验证凭证必须满足适当的强度,其中包括大写字母、小写字母和数字字符,而且在长度上不能小于8个字符。
会话管理:HTTP协议最初的设计难以在整个应用会话持续期间跟踪会话。这推动了HTTP协议上会话管理功能的开发。例如,一个安全需求是合法用户自始至终可以保持正常访问,远程会话的所有资源利用必须加以监控和限制,以防止或减轻对应用可用性的攻击。
输入验证和输出编码:尽管在建模和架构阶段大多数设计级安全性缺陷都会被发现,但大多数开发和交付的安全性问题是由于不良的输入验证和输出编码而引入的,因此用户提供的数据要通过适当的验证,例如,所有输入必须通过集中的验证控制来加以验证。
异常处理:从严格意义上讲,一个应用不可能完全安全。隐藏详细的应用异常或过于具体的错误消息,能够延长攻击应用所需的时间,因此一个安全需求是应将所有错误消息捕获,并记录在安全性审计日志中。
加密技术:选择一种满足业务需要、受行业支持的加密算法极其重要。如,应用所使用的所有加密算法必须经过联邦信息处理标准批准且与之兼容。
存储数据:尽管所有应用都试图保护存储中的数据,但还是需要假设这些数据会被泄露。任何敏感数据都要加密。一个安全需求的例子是,如果应用包含必须强加保护的敏感用户信息,则必须使用加密技术来保护用户名、地址和财务数据等敏感的用户信息。
使用数据:只要软件应用被实现,就存在对传输数据的攻击。当应用数据跨越开放和封闭的网络和系统时,需要加以保护。如果应用在不可信或不安全的网络间传输敏感的用户信息,那么所有通信内容必须予以加密。
配置管理:新的漏洞每天都会涌现,尽管其中一些问题可通过打补丁的方式加以纠正,但有时需要通过特定的部署措施来同时满足业务使用要求和安全要求。如,所有管理界面必须从非管理界面中分离出来。